/* vim:ft=objc:
 * $Id: IMAPResponse.m 145 2005-05-24 21:52:41Z bmoore $
 *
 * Copyright (c) 2004, 2005  Branden J. Moore.
 *
 * This file is part of MacBiff, and is free software; you can redistribute
 * it and/or modify it under the terms of the GNU General Public License
 * version 2 as published by the Free Software Foundation.
 *
 * MacBiff is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with MacBiff; if not, write to the Free Software Foundation, Inc., 59
 * Temple Place, Suite 330, Boston, MA  02111-1307 USA.
 *
 */


#import "IMAPResponse.h"


@implementation IMAPResponse

- (id) init
{
	if ( (self = [super init]) != Nil ) {
		lines = [[NSMutableArray alloc] initWithCapacity: 5];
		enumerator = Nil;
	}
	return self;
}


- (void) addLine: (NSString*) str
{
	[lines addObject: str];
}


- (NSString*) lineContaining: (NSString*) s
{
	NSString *str;
	NSRange range;
	NSEnumerator *lEnum = [lines objectEnumerator];

	while ( (str = [lEnum nextObject]) ) {
		range = [str rangeOfString: s];
		if ( range.location != NSNotFound ) break;
	}
	return str;
}


- (NSString*) nextLine
{
	if ( enumerator == Nil ) {
		enumerator = [lines objectEnumerator];
	}
	return [enumerator nextObject];
}


- (void) resetEnumerator
{
	enumerator = Nil;
}


- (BOOL) isOK
{
	NSArray *arr = Nil;
	NSString *str;

	str = [lines lastObject];
	if ( !str ) return NO;

	arr = [str componentsSeparatedByString: @" "];
	if ( !arr || [arr count] < 2 ) return NO;

	return [[arr objectAtIndex: 1] isEqualToString: @"OK"];
}

@end
